1. Thiết kế biểu mẫu (form) 36
1.3 Các thuộc tính của biểu mẫu 44
a. Thuộc tính về hình thức trình bày của form:
+ Default View: Dạng hiển thị ngầm định của form.
+ Scroll Bars: Các thanh cuộn để chuyển điều khiển lên – xuống.
+ Navigation Button: Các nút để dịch chuyển bản ghi.
+ Dividing Lines: Đường phân chia các bộ phận của form.
+ Picture: Hình ảnh trên toàn form.
+ MinMax Buttons: Nút cho phép thu nhỏ, phóng to kích cỡ của form. b. Thuộc tính liên quan đến dữ liệu của form:
+ Records Source: Tên truy vấn, bảng nguồn dữ liệu hoặc văn bản SQL của nguồn dữ liệu.
+ Allow Filters: Cho phép lọc dữ liệu hiện trên form.
+ Allow Deletions: Cho phép xóa các bản ghi trên form.
+ Allow Edits: Cho phép chỉnh sửa dữ liệu trên form.
+ Allow Additions: Cho phép bổ sung bản ghi trên form
c. Các thuộc tính khác:
+ Popup: Form được mở trên các form khác.
+ Modal: Không thể kích hoạt bất cứ vị trí nào ngoài phạm vi form.
+ Menu Bar: menu hiện khi mở form.
+ Shortcut Menu: Menu hiện khi nhấn chuột phải. 1.4Biểu mẫu chính phụ
chính phụđộc lập hoặc phụ thuộc. Cách tạo form chính – phụ phụ thuộc
- Dùng Wizard: Trên màn hình thiết kế form chính, bật Control Wizard, chọn điều khiển Subform/Subreport sau đó xác định:
+ Chọn bảng nguồn hoặc form đã có sẵn. + Chọn trường đưa vào form phụ.
+ Chọn trường kết nối.
+ Chọn tên điều khiển form phụ.
- Không dùng Wizard:
+ Tạo form chính.
+ Tạo form phụ một cách độc lập.
+ Mở cửa sổ thiết kế form chính đồng thời với cửa sổ Database. Kéo form phụ
vào form chính.
Ví dụ: Tạo một form chính “Danh sách phòng”, môi phòng tương ứng với một danh sách nhân viên trong form phụ “Danh sách nhân viên”.
Cửa sổ thiết kế:
Chú ý: Danh sách nhân viên trong form phụ hiển thịđúng là các nhân viên của phòng trong form chính. Vì bảng PHONG và bảng NHANVIEN kết nối (quan hệ) với nhau thông qua trường MAPHONG.
2. Thiết kế báo cáo
Báo cáo dùng để in ra giấy những thông tin kết xuất từ CSDL theo khuôn dạng, yêu cầu của từng cơ quan.
Báo cáo có nhiều dạng, nhưng thông dụng nhất là các dạng sau: - Báo cáo dạng văn bản, trong đó văn bản kết hợp với các thông tin lấy từ
CSDL, ví dụ, giấy mời được giửi tới các thành viên mà danh sách được lưu trữ
trong CSDL, thẻ ra vào, …
- Báo cáo dạng đơn giản với thông tin được lấy trực tiếp từ CSDL, ví dụ danh sách nhân viên, bảng lương.
- Báo cáo thực hiện một số tính toán, thống kê. - Báo cáo dạng biểu đồ, nhãn thư, …
Nói chung rất ít khi phải tựđộng tạo báo cáo trong chương trình. Thông thường, khuôn dạng của báo cáo được tạo trước rồi sau đó muốn cho báo cáo được linh hoạt hơn thì dùng chương trình đổi nguồn dữ liệu
2.1Tạo báo cáo mới
Để tạo khuôn dạng của báo cáo ban đầu:
Cách 1: Từ cửa sổ Database, trong phần Objects chọn Report -> Create report in
Design view hoặc Create report by using winzard ->
Màn hình thiết kế báo cáo hiện ra với 3 chếđộ song song tồn tại, đó là:
- Design View: Thiết kế báo cáo.
- Print Preview: Xem hình ảnh của báo cáo với kích thước thật và dữ liệu thật.
- Layout Preview: Chỉ xem hình ảnh của báo cáo, còn dữ liệu chưa chắc chính xác, vì Access có thể bỏ qua các điều kiện chọn, kết nối, …
Cửa sổ thiết kế báo cáo:
Trên màn hình thiết kế báo cáo cũng luôn để 2 công cụ là Toolbox và Fieldlist giống như
trong cửa sổ thiết kế biểu mẫu. Các thành phần trong cửa sổ thiết kế báo cáo gồm:
- Detail: Lặp lại theo từng bộ dữ liệu (từng bản ghi trong bảng hoặc truy vấn nguồn).
- Page Header/Page Footer: Lập lại mỗi trang một lần. Phần này thường chứa số
trang, ngày tháng lập báo cáo, …
- Report Header/Report Footer: Mỗi báo cáo lặp một lần. Phần này chứa tiêu đề
chung của toàn báo cáo và các dạng tổng cộng.
- Ngoài ra các báo cáo có phân nhóm còn chứa Group Header/Footer dùng làm tiêu đề
và các dòng tổng cộng cho từng nhóm trong báo cáo. 2.2Thiết kế các một số dạng báo cáo
a. Thiết kế báo cáo dạng văn bản
Gồm những văn bản giống nhau được gửi tới mỗi đối tượng có thông tin trong CSDL. Đặc trưng của các báo cáo dạng này là văn bản trộn lẫn với thông tin trong CSDL. Vì vậy, toàn bộ thiết kế nằm trong phần Detail. Trong báo cáo thường gồm các điều khiển:
- Nhãn: Chứa các đoạn văn bản với font chữ theo yêu cầu thực tế.
- Textbox: Có thể chứa thông tin lấy trực tiếp từ nguồn dữ liệu hoặc kết xuất từ những thông tin trong CSDL. Do vậy Text box gồm 2 loại: bị buộc và tính toán được.
- Ảnh: Có thể bị buộc hoặc không bị buộc.
b. Thiết kế báo cáo đơn giản dạng bảng
- Tiêu đề: Nếu tiêu đề xuất chỉ xuất hiện ở trang đầu chọn Report Header. Nếu tiêu đề
xuất hiện trên mọi trang chọn Page Header.
- Đầu cột: Thường đểở Page Header (trừ trường hợp dán nối các trang thì đẻở Report Header).
- Text box chứa dữ liệu nguyên dạng: Kéo các dữ liệu xuất hiện trong bảng từ Field List vào phần Detail. Xóa nhãn đi kèm điều khiển. Việc căn chỉnh giống như căn chỉnh
điều khiển trên form.
+ Nếu muốn các giá trị trùng nhau chỉ xuất hiện 1 lần, ví dụ tên người đi kèm tên ngoại ngữ mà người đó biết, mở thuộc tính của Textbox đặt Hide Duplicate là Yes.
+ Để có các textbox có độ cao giống nhau, nên chọn cách sao chép hoặc tác động vào thuộc tính của điều khiển.
Tạo các Textbox (điều khiển tính toán được) chứa dữ liệu kết xuất dạng: = <Biểu thức> Trong đó đặc biệt là điều khiển số thứ tự. Nhưng phải đặt thuộc tín Running Sum là Over
All.
- Có những Textbox được dùng làm trung gian để tính giá trị cho những textbox khác. Khi ấy phải đặt thuộc tính Visible là No.
- Dòng tổng cộng đặt tại Report Footer.
- Số trang hoặc ngày lập báo cáo có thểđểở Page Footer. Hàm Page, cho biết số của trang hiện thời. Hàm Pages, cho biết tổng số trang của báo cáo.
- Muốn kẻ khung dùng các điều khiển dạng Line. Muốn chính xác sử dụng thuộc tính left, width, top, height. Tại Textbox đặt thuộc tính Borderr Style chọn Solid/Dashes … tính toán Cuối báo cáo (Report Footer) thđược với các hàm thư viườệng có các dòng tn hoặc các hàm thổng cư viộệng là các n có điều kiđiềệu khin, đó là: ển dạng
= Sum| Avg| StDev| StDevP| Var| VarP (<Biểu thức số>) =Count| Min| Max (<Biểu thức>)
= DSum| DAvg| DStDev| DStDevP| DVar| DVarP (<Biểu thức số>; <Tên nguồn dữ liệu>; <Điều kiện>)
=DCount| DMin| DMax (<Biểu thức>;<Tên nguồn dữ liệu>;<Điều kiện>)
c. Thiết kế báo cáo thống kê
Nguồn dữ liệu của các báo cáo này trong trường hợp đơn giản là các truy vấn dạng crosstab, ngoài ra có thể dùng bảng trắng và viết mã lệnh VBA để tính toán dữ liệu, dồn vào bảng.
2.3Sắp xếp và phân nhóm trên báo cáo
Muốn dữ liệu xuất hiện trong báo cáo được sắp xếp theo một thứ tự nào đó, không nhất thiết phải sắp xếp trên truy vấn. Có thể sắp xếp ngay trên báo cáo. Để thực hiện công việc này, cần mở hộp thoại Sorting and Grouping (Có thể mở hộp thoại Sorting and Grouping bằng cách chọn View hoặc kích chuột phải). Cửa sổ Sorting and Grouping có dạng như sau:
Sau khi sắp xếp xong có thể phân nhóm dữ liệu – cũng làm việc trên hộp thoại nói trên. Nếu đặt Group Header/Footer là Yes, sẽ xuất hiện tiêu đề trên và dưới cho mỗi nhóm và do vậy có thể dùng tiêu đề, kẻđầu cột cũng như tính toán ứng với mỗi nhóm.
Có thể phân nhóm theo nhiều trường cũng như phân nhóm theo trường kết xuất. 2.4Báo cáo chính phụ
Cũng như trên form, khi tạo báo cáo với nguồn dữ liệu lấy từ nhiều bảng và phải
đảm bảo đúng khuôn dạng thực tế, người ta phải dùng báo cáo chính-phụ, ví dụ
phiếu xuất vật tư, lý lịch nhân viên, …
Cách tạo báo cáo chính – phụ cũng giống như trên Form, gồm các bước sau:
- Tạo báo cáo chính.
- Tạo báo cáo phụ như một báo cáo độc lập.
- Mởđồng thời cửa sổ thiết kế báo cáo chính và cửa sổ Database. Kéo báo cáo phụ từ cửa sổ Database vào.
- Mở thuộc tính của điều khiển Subreport trên báo cáo chính. Kiểm tra sự
kết nối dữ liệu qua các thuộc tính LinkMasterFields và LinkChildFields.
Chú ý rằng các thuộc tính LinkMasterFields và LinkChildFields còn xuất hiện cả
trong biểu đồ. (Không cần tạo báo cáo phụ dạng biểu đò mà nên dùng Insert\Chart). Do vậy có thể liên kết dữ liệu ở dạng báo cáo chính và dữ liệu ở biểu đồ trong đó. 2.5Một số ví dụ về thiết kế báo cáo
Ví dụ 1: Thiết kế báo “Thẻ ra vào”, có nội dung được trình bày như sau:
THẺ RA VÀO Số thẻ: Họ tên: Nam/nữ ẢNH Năm sinh: Đơn vị:
Để có được nguồn dữ liệu cho báo cáo, cần thiết kế truy vấn: Tìm Mã NV, Họ tên, Năm sinh, Giới tính (Nam/nữ), Tên phòng. Dữ liệu cho truy vấn này được lấy từ
bảng nhân viên và bảng Phòng.Vì thẻ ra vào được in cho từng nhân viên, có nghĩa là toàn bộ thông tin trên tờ thẻđược lặp lại với mỗi bản ghi về nhân viên nên toàn bộ
các thông tin trên thẻđều được để trong phần Detail. Thiết kế của thẻ ra vào được thể hiện như sau:
Bước 1: Mở cửa sổ thiết kế báo cáo (report)
Từ cửa sổ Database, trong phần Objects chọn Report -> Create report in
Design view - >
Bước 2: Chọn nguồn dữ liệu cho báo cáo là bảng NHANVIEN
Bước 3: Thiết kế các điều khiển trên báo cáo
Kéo rê các trường cần hiển thị trên report (các trường này lấy từ nguồn dữ liệu của report – Field List) vào cửa sổ thiết kế, sau đó hiệu chỉnh lại các nhãn (Lables) và text box để hiển thị giới tính trên report như sau:
Ví dụ 2: Tạo danh sách nhân viên toàn cơ quan nhận tiền, lý do nhận tiền và số tiền nhận nhập từ bàn phím, theo mẫu sau:
DANH SÁCH NHÂN VIÊN TOÀN CƠ QUAN NHẬN TIỀN … PHÒNG TỔ CHỨC STT HỌ TÊN SỐ TIỀN KÝ NHẬN Tổng toàn phòng …… PHÒNG TÀI VỤ STT HỌ TÊN SỐ TIỀN KÝ NHẬN Tổng toàn phòng …… ……… Tổng cộng toàn cơ quan….
Các bước thiết kế báo cáo như sau:
- Tạo nguồn dữ liệu là một truy vấn tham số gồm các thông tin: tên phòng, họ tên nhân viên, số tiền nhận (số tiền là 1 tham sốđược nhập từ bàn phím).
- Đặt con trỏ trên báo cáo, click chuột phải -> Sorting and Grouping, cửa sổ Sorting and Grouping xuất hiện, trong cửa sổ này chúng ta thiết kế như sau:
- Kéo rê các trường cần hiển thị trên report (các trường này lấy từ nguồn dữ liệu của report – Field List) vào cửa sổ thiết kế, sau đó hiệu chỉnh lại các nhãn (Lables) và thêm các các nhãn, các text box mới trên report như sau:
Chương 5 BÀI TẬP CSDL QUẢN LÝ SINH VIÊN
Tạo Database với tên QLSV.MDB Câu 1: Tạo cấu trúc các Table như sau:
a. DMKHOA (Danh mục khoa)
Field Name Data Type Field Size Format Required
MaKH Text 6 > Yes
TenKhoa Text 30 Yes
b. SINHVIEN (Sinh Viên)
Field Name Data Type Field Size Format Required
MaSV Text 6 > Yes
HoSV Text 30 Yes
TenSV Text 15 Yes
GioiTinh Yes/No Yes
NgaySinh Date/Time Short Date Yes
NoiSinh Text 50
DiaChi Text 50 Quan Text 10
MaKH Text 6 Yes
HocBong Number Long Integer
c. MONHOC (Môn học)
Field Name Data Type Field Size Format Required
MaMH Text 6 > Yes
TenMH Text 50 Yes
SoTiet Number byte Yes
d. KETQUA (Kết quả)
Field Name Data Type Field Size Format Required
MaSV Text 6 > Yes
MaMH Text 6 > Yes
Diem Number Single
Lưu ý: Các Khóa chính trong bảng là in đậm và gạch dưới
Câu 3: Nhập liệu cho các bảng như sau: (nhập bên nhánh 1 trước). Thứ tự nhập là: DMKhoa, SinhVien, MonHoc, KetQua
Table:DMKhoa MaKhoa TenKhoa AV Anh văn TH Tin Học TR Triết Học VL Vật Lý Table: SinhVien
MaSV HoSV TenSV GioiTinh NgaySinh NoiSinh DiaChi Quan MaKhoa HocBong
A01 Nguyễn thị Hải Nữ 23/02/77 Sài Gòn 12 B Võ văn Tần Q3 TH 10000 A02 Trần văn Chính Nam 24/12/77 Sài Gòn 34 Nguyễn Bỉnh Khiêm Q1 TH 120000 A03 Lê Bạch Yến Nữ 21/02/96 Hà Nội 765 PasTeur Q3 TH 140000 A04 Trần anh Tuấn Nam 20/11/77 Long An 12 Điện biên Phủ BT AV 80000 A05 Trần thanh Triều Nam 13/02/77 Hà Nội 3 Nguyện thiện thuật Q3 AV 80000
A06 Nguyễn văn Chinh Nam 31/12/75 Sài Gòn 12 lê Lợi Q5 AV B01 Trần Thanh Mai Nữ 12/08/77 Bến tre 32 Lê lai Q1 TH
B02 Trần thu Thủy Nữ 01/01/77 Sài gòn 45 Nguyễn Thái sơn BC TH B03 Lê thị Thanh Nử 01/01/75 Sài gòn 345 Nguyễn Kiệm Q1 AV
B04 Trần trọng Kim Nam 20/12/77 Sài gòn 123 Lê văn sỹ Q1 AV 120000 C01 Tào hồng Thiên Nam 01/07/78 Sài gòn 56 Hòang Diệu TB TH
C02 Hòang minh Châu Nam 03/05/76 Sài gòn 102 KỳĐồng TB AV C03 Phan quỳnh Hương Nữ 05/05/79 Sài gòn 234 Phạm văn hai GV AV
Table : MONHOC
MaMH TenMH SoTiet
01 Cơ sởDữ liệu 45 02 Trí tuệ Nhân tạo 45 03 Truyền Tin 45 04 Đồ Họa 60 05 Văn Phạm 60 06 Đàm thọai 60 07 Vật Lý Nguyên Tử 45 08 Vật Lý Địa Cầu 45
09 Triết học Đông Phương 75
10 Triết Học Tây Phương 75
Table: KETQUA
MaSV MaMH Diem
A01 01 2
A01 03 7
A02 01 5
A02 05 9 A02 06 6.5 A03 01 5 A03 03 3 A03 05 10 A04 05 4 A05 06 8 A06 01 7 B01 03 3 B01 02 6 B02 04 10 B02 01 7 B03 03 6 B04 05 3 B04 06 4
Câu 4: Thực hiện các truy vấn sau:
A- Sử dụng Select Query
1. Hiển thị danh sách sinh viên gồm các thông tin sau:Masv, HoSV, TenSV, NgaySinh, GioiTinh
2. Hiển thị danh sách sinh viên như câu 1 nhưng sắp xếp theo MaSV tăng dần 3. Hiển thị danh sách sinh viên gồm các thông tin sau: Masv, HoSV, TenSV,
NgaySinh, GioiTinh, MaKH, HocBong (sắp xếp MaKH tăng dần, MaSV giảm dần)
4. Hiển thị bảng điểm sinh viên gồm các thông tin: MaSV, HoSV, TenSV, MaMH, Diem
B- Sử dụng Select Query (Field, Sort, Show, Criteria)
1. Hiển thị danh sách sinh viên có tên là “Chính”
2. Hiển thị danh sách sinh viên có Nơi sinh là “Sài Gòn”
3. Hiển thị danh sách sinh viên có Nơi Sinh là “Hà Nội” và học Khoa “TH” 4. Hiển thị danh sách sinh viên có Họ là “Trần” và học Khoa “AV”
5. Hiển thị danh sách sinh viên có Mã số bắt đầu là B và học Khoa “AV” 6. Hiển thị danh sách sinh viên có Phái là “Nữ” và nơi sinh là “Bến tre” 7. Hiển thị danh sách sinh viên có ngàysinh>=01/01/1977
8. Hiển thị danh sách sinh viên không có Học Bổng
9. Hiển thị danh sách sinh viên có Học bổng và học Khoa “TH”
C- Sử dụng Select Query với các cột tính tóan tự tạo ra thông qua các Hàm (IIF,MONTH, YEAR,DAY,TRIM, LEFT, RIGHT)
1. Hiển thị danh sách sinh viên gồm các cột sau: MaKH, MaSV, HoSV,TenSV, Namsinh, Tuoi, sắp xếp tuổi theo thứ tụ tăng dần. Biết rằng tuổi sẽ là Năm hiện Hành – Năm Sinh
2. Hiển thị danh sách sinh viên gồm các cột sau: MaSV, HoTenSV, Phai, MaKH, TenKhoa. biết rằng HoTenSV= HoSV & TenSV
3. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, Ngaysinh, NoiSinh nhưng chỉ lọc Sinh viên sinh vào tháng 12
4. Hiển thị danh sách sinh viên gồm các thông tin sau: MaSV, HoTenSV, Ngaysinh, NoiSinh nhưng chỉ lọc Sinh viên sinh vào tháng 11 và năm 1977